为何部分程序员从不使用 break 或 continue 语句? 您所在的位置:网站首页 java continue break 为何部分程序员从不使用 break 或 continue 语句?

为何部分程序员从不使用 break 或 continue 语句?

2023-03-15 21:02| 来源: 网络整理| 查看: 265

这种SB指引还有很多,例如只能出现一个return之类……

而事实是,我们code review的一个很重要的原则就是短路优先。

也就是说,尽可能的短路(throw,return,break,continue)

语言发明这么多的短路运算符就是为了让你的代码更容易看懂的……

===========================================

稍微讲一下什么叫做短路优先,

就是短路径优先,路径可以认为是某一个语句块,这个语句块是抽象意义上的,所以短路优先,就是语句块尽可能短而不是长,因为越短的语句块,人阅读时的心智负担就越小。

所以:

函数尽可能短,太长的函数拆分。

控制块尽可能短,太长的控制块抽出函数。

条件判断时,短分支写在长分支前面。

条件判断时,能不写else分支就不写,else if除外

变量声明和变量使用的间隔尽可能地短。

变量的作用域尽可能的短。

得到返回值尽可能早的return,清理操作放finally。[1]

发现异常尽可能早的throw,哪怕catch再rethrow。[2]

@Zheng Dara 有一句话说的很对,咱写代码又不是写给傻子看的……

[1]

例子:

public object Foo() { using( var stream = File.Open( "xxx" ) ) { if ( TryParse( stream, out var result ) return result; //a lot of codes... } }

注:using是finally的语法糖

[2]

例子:

public void Foo() { try { if ( TryDoSomething() == false ) throw new InvalidOperationException( "invalid operation" ); //a lot of codes ... } catch( Exception e ) { LogError( e ); throw; } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有